package org.egedede.processmanager;

import java.util.List;

import org.egedede.processmanager.events.ProcessListener;

public interface ProcessManager {

	void process(ProcessPack pack);

	void process(ProcessDefinition def);

	List<ProcessDefinition> list();

	void cancel(ProcessDefinition process);

	/**
	 * remove all finished process
	 */
	void clear();

	/**
	 * delete this process whatever it's status is.
	 */
	void delete(ProcessDefinition o);

	void addListener(ProcessListener listener);

	void removeListener(ProcessListener listener);

}